package com.brillilab.service.core.experiments;

import java.util.List;

import com.brillilab.domain.po.experiments.ExperimentStep;
import com.brillilab.domain.vo.experiments.ExperimentTipsVo;
/**
 * 实验步骤
 * @author XuZue
 * @time   2019/04/18
 */
public interface IExperimentStepService {

    //**** WuMenghao ****/
    ExperimentStep selectById(Long stepId);

    ExperimentStep selectExperimentFirstStep(Long experimentId,Long phaseId);

    boolean updateById(ExperimentStep step);

    ExperimentStep getExperimentStepAndAssertExist(Long experimentId,Long phaseId,Long stepId,Long labId,Long labMemberId);

    List<ExperimentStep> getExperimentStepList(Long experimentId);

    List<ExperimentStep> getExperimentStepList(List<Long> experimentIds);

    boolean deleteByExperimentId(Long experimentId);
    //**** end ****//
    List<ExperimentStep> selectList(List<Long> stepIds);

    void update(ExperimentStep experimentStep);

	ExperimentStep insert(ExperimentStep experimentStep);

    ExperimentTipsVo selectExperimentTipsVo(Long stepId, String parentType);

    void deleteTips(Long stepId);

    void deleteById(Long stepId);

    void startStep(Long stepId);

	List<ExperimentStep> selectByPhaseId(Long phaseId);

    int insertBatch(List<ExperimentStep> newSteps);

    List<ExperimentStep> selectListByExperimentId(Long experimentId);
}
